home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / QuickTime / QuickTime 3 Interfaces & Libs / QTDevWin / CIncludes / Displays.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-21  |  27.8 KB  |  740 lines  |  [TEXT/dosa]

  1. /*
  2.      File:        Displays.h
  3.  
  4.      Contains:    Display Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    QuickTime 3.0
  8.  
  9.      Copyright:    © 1993-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __DISPLAYS__
  19. #define __DISPLAYS__
  20.  
  21. #ifndef __CONDITIONALMACROS__
  22. #include <ConditionalMacros.h>
  23. #endif
  24. #ifndef __COMPONENTS__
  25. #include <Components.h>
  26. #endif
  27. #ifndef __VIDEO__
  28. #include <Video.h>
  29. #endif
  30.  
  31. #ifndef __APPLEEVENTS__
  32. #include <AppleEvents.h>
  33. #endif
  34. #ifndef __EVENTS__
  35. #include <Events.h>
  36. #endif
  37. #ifndef __PROCESSES__
  38. #include <Processes.h>
  39. #endif
  40. #ifndef __DIALOGS__
  41. #include <Dialogs.h>
  42. #endif
  43.  
  44.  
  45. #if PRAGMA_ONCE
  46. #pragma once
  47. #endif
  48.  
  49. #ifdef __cplusplus
  50. extern "C" {
  51. #endif
  52.  
  53. #if PRAGMA_IMPORT
  54. #pragma import on
  55. #endif
  56.  
  57. #if PRAGMA_STRUCT_ALIGN
  58.     #pragma options align=mac68k
  59. #elif PRAGMA_STRUCT_PACKPUSH
  60.     #pragma pack(push, 2)
  61. #elif PRAGMA_STRUCT_PACK
  62.     #pragma pack(2)
  63. #endif
  64.  
  65. #ifndef FOR_GLUE_LIB
  66. #define FOR_GLUE_LIB 0
  67. #endif  /*  ! defined(FOR_GLUE_LIB)  */
  68.  
  69. #ifndef FOR_68kGLUE_LIB
  70. #define FOR_68kGLUE_LIB 0
  71. #endif  /*  ! defined(FOR_68kGLUE_LIB)  */
  72.  
  73.  
  74. enum {
  75.                                                                 /* AppleEvents Core Suite */
  76.     kAESystemConfigNotice        = FOUR_CHAR_CODE('cnfg'),        /* Core Suite types */
  77.     kAEDisplayNotice            = FOUR_CHAR_CODE('dspl'),
  78.     kAEDisplaySummary            = FOUR_CHAR_CODE('dsum'),
  79.     keyDMConfigVersion            = FOUR_CHAR_CODE('dmcv'),
  80.     keyDMConfigFlags            = FOUR_CHAR_CODE('dmcf'),
  81.     keyDMConfigReserved            = FOUR_CHAR_CODE('dmcr'),
  82.     keyDisplayID                = FOUR_CHAR_CODE('dmid'),
  83.     keyDisplayComponent            = FOUR_CHAR_CODE('dmdc'),
  84.     keyDisplayDevice            = FOUR_CHAR_CODE('dmdd'),
  85.     keyDisplayFlags                = FOUR_CHAR_CODE('dmdf'),
  86.     keyDisplayMode                = FOUR_CHAR_CODE('dmdm'),
  87.     keyDisplayModeReserved        = FOUR_CHAR_CODE('dmmr'),
  88.     keyDisplayReserved            = FOUR_CHAR_CODE('dmdr'),
  89.     keyDisplayMirroredId        = FOUR_CHAR_CODE('dmmi'),
  90.     keyDeviceFlags                = FOUR_CHAR_CODE('dddf'),
  91.     keyDeviceDepthMode            = FOUR_CHAR_CODE('dddm'),
  92.     keyDeviceRect                = FOUR_CHAR_CODE('dddr'),
  93.     keyPixMapRect                = FOUR_CHAR_CODE('dpdr'),
  94.     keyPixMapHResolution        = FOUR_CHAR_CODE('dphr'),
  95.     keyPixMapVResolution        = FOUR_CHAR_CODE('dpvr'),
  96.     keyPixMapPixelType            = FOUR_CHAR_CODE('dppt'),
  97.     keyPixMapPixelSize            = FOUR_CHAR_CODE('dpps'),
  98.     keyPixMapCmpCount            = FOUR_CHAR_CODE('dpcc'),
  99.     keyPixMapCmpSize            = FOUR_CHAR_CODE('dpcs'),
  100.     keyPixMapAlignment            = FOUR_CHAR_CODE('dppa'),
  101.     keyPixMapResReserved        = FOUR_CHAR_CODE('dprr'),
  102.     keyPixMapReserved            = FOUR_CHAR_CODE('dppr'),
  103.     keyPixMapColorTableSeed        = FOUR_CHAR_CODE('dpct'),
  104.     keySummaryMenubar            = FOUR_CHAR_CODE('dsmb'),
  105.     keySummaryChanges            = FOUR_CHAR_CODE('dsch'),
  106.     keyDisplayOldConfig            = FOUR_CHAR_CODE('dold'),
  107.     keyDisplayNewConfig            = FOUR_CHAR_CODE('dnew')
  108. };
  109.  
  110.  
  111. enum {
  112.     dmOnlyActiveDisplays        = true,
  113.     dmAllDisplays                = false
  114. };
  115.  
  116.  
  117.  
  118. enum {
  119.                                                                 /* DMSendDependentNotification notifyClass */
  120.     kDependentNotifyClassShowCursor = FOUR_CHAR_CODE('shcr'),    /* When display mgr shows a hidden cursor during an unmirror */
  121.     kDependentNotifyClassDriverOverride = FOUR_CHAR_CODE('ndrv'), /* When a driver is overridden */
  122.     kDependentNotifyClassDisplayMgrOverride = FOUR_CHAR_CODE('dmgr'), /* When display manager is upgraded */
  123.     kDependentNotifyClassProfileChanged = FOUR_CHAR_CODE('prof') /* When DMSetProfileByAVID is called */
  124. };
  125.  
  126.  
  127.  
  128. enum {
  129.                                                                 /* Switch Flags */
  130.     kNoSwitchConfirmBit            = 0,                            /* Flag indicating that there is no need to confirm a switch to this mode */
  131.     kDepthNotAvailableBit        = 1,                            /* Current depth not available in new mode */
  132.     kShowModeBit                = 3,                            /* Show this mode even though it requires a confirm. */
  133.     kModeNotResizeBit            = 4,                            /* Do not use this mode to resize display (for cards that mode drives a different connector). */
  134.     kNeverShowModeBit            = 5                                /* This mode should not be shown in the user interface. */
  135. };
  136.  
  137. /*    Summary Change Flags (sticky bits indicating an operation was performed)
  138.     For example, moving a display then moving it back will still set the kMovedDisplayBit.
  139. */
  140.  
  141. enum {
  142.     kBeginEndConfigureBit        = 0,
  143.     kMovedDisplayBit            = 1,
  144.     kSetMainDisplayBit            = 2,
  145.     kSetDisplayModeBit            = 3,
  146.     kAddDisplayBit                = 4,
  147.     kRemoveDisplayBit            = 5,
  148.     kNewDisplayBit                = 6,
  149.     kDisposeDisplayBit            = 7,
  150.     kEnabledDisplayBit            = 8,
  151.     kDisabledDisplayBit            = 9,
  152.     kMirrorDisplayBit            = 10,
  153.     kUnMirrorDisplayBit            = 11
  154. };
  155.  
  156.  
  157.  
  158. enum {
  159.                                                                 /* Notification Messages for extended call back routines */
  160.     kDMNotifyInstalled            = 1,                            /* At install time */
  161.     kDMNotifyEvent                = 2,                            /* Post change time */
  162.     kDMNotifyRemoved            = 3,                            /* At remove time */
  163.     kDMNotifyPrep                = 4,                            /* Pre change time */
  164.     kDMNotifyExtendEvent        = 5,                            /* Allow registrees to extend apple event before it is sent */
  165.     kDMNotifyDependents            = 6,                            /* Minor notification check without full update */
  166.     kDMNotifySuspendConfigure    = 7,                            /* Temporary end of configuration */
  167.     kDMNotifyResumeConfigure    = 8,                            /* Resume configuration */
  168.     kDMNotifyRequestDisplayProbe = 9,                            /* Request smart displays re-probe (used in sleep and hot plugging) */
  169.                                                                 /* Notification Flags */
  170.     kExtendedNotificationProc    = (1L << 16)
  171. };
  172.  
  173.  
  174. /* types for notifyType */
  175.  
  176. enum {
  177.     kFullNotify                    = 0,                            /* This is the appleevent whole nine yards notify */
  178.     kFullDependencyNotify        = 1                                /* Only sends to those who want to know about interrelated functionality (used for updating UI) */
  179. };
  180.  
  181. /* DisplayID/DeviceID constants */
  182.  
  183. enum {
  184.     kDummyDeviceID                = 0x00FF,                        /* This is the ID of the dummy display, used when the last “real” display is disabled.*/
  185.     kInvalidDisplayID            = 0x0000,                        /* This is the invalid ID*/
  186.     kFirstDisplayID                = 0x0100
  187. };
  188.  
  189.  
  190. enum {
  191.                                                                 /* bits for panelListFlags */
  192.     kAllowDuplicatesBit            = 0
  193. };
  194.  
  195.  
  196. enum {
  197.                                                                 /* bits for nameFlags */
  198.     kSuppressNumberBit            = 0,
  199.     kSuppressNumberMask            = 1,
  200.     kForceNumberBit                = 1,
  201.     kForceNumberMask            = 2,
  202.     kSuppressNameBit            = 2,
  203.     kSuppressNameMask            = 4
  204. };
  205.  
  206.  
  207.  
  208. /* Constants for fidelity checks */
  209.  
  210. enum {
  211.     kNoFidelity                    = 0,
  212.     kMinimumFidelity            = 1,
  213.     kDefaultFidelity            = 500,                            /* I'm just picking a number for Apple default panels and engines*/
  214.     kDefaultManufacturerFidelity = 1000                            /* I'm just picking a number for Manufacturer's panels and engines (overrides apple defaults)*/
  215. };
  216.  
  217.  
  218. enum {
  219.     kAnyPanelType                = 0,                            /* Pass to DMNewEngineList for list of all panels (as opposed to specific types)*/
  220.     kAnyEngineType                = 0,                            /* Pass to DMNewEngineList for list of all engines*/
  221.     kAnyDeviceType                = 0,                            /* Pass to DMNewDeviceList for list of all devices*/
  222.     kAnyPortType                = 0                                /* Pass to DMNewDevicePortList for list of all devices*/
  223. };
  224.  
  225. /* portListFlags for DM_NewDevicePortList */
  226.  
  227. enum {
  228.                                                                 /* Should offline devices be put into the port list (such as dummy display) */
  229.     kPLIncludeOfflineDevicesBit    = 0
  230. };
  231.  
  232.  
  233. /* confirmFlags for DMConfirmConfiguration */
  234.  
  235. enum {
  236.     kForceConfirmBit            = 0,                            /* Force a confirm dialog */
  237.     kForceConfirmMask            = (1 << kForceConfirmBit)
  238. };
  239.  
  240.  
  241. /* Flags for displayModeFlags */
  242.  
  243. enum {
  244.     kDisplayModeListNotPreferredBit = 0,
  245.     kDisplayModeListNotPreferredMask = (1 << kDisplayModeListNotPreferredBit)
  246. };
  247.  
  248.  
  249. /* Flags for itemFlags */
  250.  
  251. enum {
  252.     kComponentListNotPreferredBit = 0,
  253.     kComponentListNotPreferredMask = (1 << kComponentListNotPreferredBit)
  254. };
  255.  
  256.  
  257. enum {
  258.     kDisplayTimingInfoVersionZero = 1,
  259.     kDisplayTimingInfoReservedCountVersionZero = 16,
  260.     kDisplayModeEntryVersionZero = 0,                            /* displayModeVersion - original version*/
  261.     kDisplayModeEntryVersionOne    = 1                                /* displayModeVersion - added displayModeOverrideInfo*/
  262. };
  263.  
  264.  
  265.  
  266. typedef unsigned long                     DMFidelityType;
  267. /*
  268.    AVID is an ID for ports and devices the old DisplayID type
  269.       is carried on for compatibility
  270. */
  271.  
  272. typedef unsigned long                     AVIDType;
  273. typedef AVIDType                         DisplayIDType;
  274. typedef void *                            DMListType;
  275. typedef unsigned long                     DMListIndexType;
  276. typedef VDPowerStateRec                 AVPowerStateRec;
  277. typedef VDPowerStateRec *                AVPowerStatePtr;
  278.  
  279. struct DMDisplayTimingInfoRec {
  280.     UInt32                             timingInfoVersion;
  281.     UInt32                             timingInfoAttributes;        /* Flags */
  282.     SInt32                             timingInfoRelativeQuality;    /* quality of the timing */
  283.     SInt32                             timingInfoRelativeDefault;    /* relative default of the timing */
  284.  
  285.     UInt32                             timingInfoReserved[16];        /* Reserved */
  286. };
  287. typedef struct DMDisplayTimingInfoRec    DMDisplayTimingInfoRec;
  288.  
  289. typedef DMDisplayTimingInfoRec *        DMDisplayTimingInfoPtr;
  290.  
  291.  
  292. struct DMComponentListEntryRec {
  293.     DisplayIDType                     itemID;                        /* DisplayID Manager*/
  294.     Component                         itemComponent;                /* Component Manager*/
  295.     ComponentDescription             itemDescription;            /* We can always construct this if we use something beyond the compontent mgr.*/
  296.  
  297.     ResType                         itemClass;                    /* Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)*/
  298.     DMFidelityType                     itemFidelity;                /* How good is this item for the specified search?*/
  299.     ResType                         itemSubClass;                /* Subclass of group to put this panel.  Can use to do sub-grouping (eg volume for volume panel and mute panel)*/
  300.     Point                             itemSort;                    /* Set to 0 - future to sort the items in a sub group.*/
  301.  
  302.     unsigned long                     itemFlags;                    /* Set to 0 (future expansion)*/
  303.     ResType                         itemReserved;                /* What kind of code does the itemReference point to  (right now - kPanelEntryTypeComponentMgr only)*/
  304.     unsigned long                     itemFuture1;                /* Set to 0 (future expansion - probably an alternate code style)*/
  305.     unsigned long                     itemFuture2;                /* Set to 0 (future expansion - probably an alternate code style)*/
  306.     unsigned long                     itemFuture3;                /* Set to 0 (future expansion - probably an alternate code style)*/
  307.     unsigned long                     itemFuture4;                /* Set to 0 (future expansion - probably an alternate code style)*/
  308. };
  309. typedef struct DMComponentListEntryRec    DMComponentListEntryRec;
  310.  
  311. typedef DMComponentListEntryRec *        DMComponentListEntryPtr;
  312. /* ••• Move AVLocationRec to AVComponents.i AFTER AVComponents.i is created*/
  313.  
  314. struct AVLocationRec {
  315.     unsigned long                     locationConstant;            /* Set to 0 (future expansion - probably an alternate code style)*/
  316. };
  317. typedef struct AVLocationRec            AVLocationRec;
  318.  
  319. typedef AVLocationRec *                    AVLocationPtr;
  320.  
  321. struct DMDepthInfoRec {
  322.     VDSwitchInfoPtr                 depthSwitchInfo;            /* This is the switch mode to choose this timing/depth */
  323.     VPBlockPtr                         depthVPBlock;                /* VPBlock (including size, depth and format) */
  324.     UInt32                             depthFlags;                    /* VDVideoParametersInfoRec.csDepthFlags  */
  325.     UInt32                             depthReserved1;                /* Reserved */
  326.     UInt32                             depthReserved2;                /* Reserved */
  327. };
  328. typedef struct DMDepthInfoRec            DMDepthInfoRec;
  329.  
  330. typedef DMDepthInfoRec *                DMDepthInfoPtr;
  331.  
  332. struct DMDepthInfoBlockRec {
  333.     unsigned long                     depthBlockCount;            /* How many depths are there? */
  334.     DMDepthInfoPtr                     depthVPBlock;                /* Array of DMDepthInfoRec */
  335.     unsigned long                     depthBlockFlags;            /* Reserved */
  336.     unsigned long                     depthBlockReserved1;        /* Reserved */
  337.     unsigned long                     depthBlockReserved2;        /* Reserved */
  338. };
  339. typedef struct DMDepthInfoBlockRec        DMDepthInfoBlockRec;
  340.  
  341. typedef DMDepthInfoBlockRec *            DMDepthInfoBlockPtr;
  342.  
  343. struct DMDisplayModeListEntryRec {
  344.     UInt32                             displayModeFlags;
  345.     VDSwitchInfoPtr                 displayModeSwitchInfo;
  346.     VDResolutionInfoPtr             displayModeResolutionInfo;
  347.     VDTimingInfoPtr                 displayModeTimingInfo;
  348.     DMDepthInfoBlockPtr             displayModeDepthBlockInfo;    /* Information about all the depths*/
  349.     UInt32                             displayModeVersion;            /* What version is this record (now kDisplayModeEntryVersionOne)*/
  350.     StringPtr                         displayModeName;            /* Name of the timing mode*/
  351.     DMDisplayTimingInfoPtr             displayModeDisplayInfo;        /* Information from the display.*/
  352. };
  353. typedef struct DMDisplayModeListEntryRec DMDisplayModeListEntryRec;
  354.  
  355. typedef DMDisplayModeListEntryRec *        DMDisplayModeListEntryPtr;
  356.  
  357.  
  358. struct DependentNotifyRec {
  359.     ResType                         notifyType;                    /* What type was the engine that made the change (may be zero)*/
  360.     ResType                         notifyClass;                /* What class was the change (eg geometry, color etc)*/
  361.     DisplayIDType                     notifyPortID;                /* Which device was touched (kInvalidDisplayID -> all or none)*/
  362.     ComponentInstance                 notifyComponent;            /* What engine did it (may be 0)?*/
  363.  
  364.     unsigned long                     notifyVersion;                /* Set to 0 (future expansion)*/
  365.     unsigned long                     notifyFlags;                /* Set to 0 (future expansion)*/
  366.     unsigned long                     notifyReserved;                /* Set to 0 (future expansion)*/
  367.     unsigned long                     notifyFuture;                /* Set to 0 (future expansion)*/
  368. };
  369. typedef struct DependentNotifyRec        DependentNotifyRec;
  370.  
  371. typedef DependentNotifyRec *            DependentNotifyPtr;
  372. /* Exports to support Interfaces library containing unused calls */
  373. #if !FOR_GLUE_LIB
  374. #endif  /*  !FOR_GLUE_LIB */
  375.  
  376. typedef CALLBACK_API( void , DMNotificationProcPtr )(AppleEvent *theEvent);
  377. typedef CALLBACK_API( void , DMExtendedNotificationProcPtr )(void *userData, short theMessage, void *notifyData);
  378. typedef CALLBACK_API( void , DMComponentListIteratorProcPtr )(void *userData, DMListIndexType itemIndex, DMComponentListEntryPtr componentInfo);
  379. typedef CALLBACK_API( void , DMDisplayModeListIteratorProcPtr )(void *userData, DMListIndexType itemIndex, DMDisplayModeListEntryPtr displaymodeInfo);
  380. typedef STACK_UPP_TYPE(DMNotificationProcPtr)                     DMNotificationUPP;
  381. typedef STACK_UPP_TYPE(DMExtendedNotificationProcPtr)             DMExtendedNotificationUPP;
  382. typedef STACK_UPP_TYPE(DMComponentListIteratorProcPtr)             DMComponentListIteratorUPP;
  383. typedef STACK_UPP_TYPE(DMDisplayModeListIteratorProcPtr)         DMDisplayModeListIteratorUPP;
  384. enum { uppDMNotificationProcInfo = 0x000000C0 };                 /* pascal no_return_value Func(4_bytes) */
  385. enum { uppDMExtendedNotificationProcInfo = 0x00000EC0 };         /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
  386. enum { uppDMComponentListIteratorProcInfo = 0x00000FC0 };         /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
  387. enum { uppDMDisplayModeListIteratorProcInfo = 0x00000FC0 };     /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
  388. #define NewDMNotificationProc(userRoutine)                         (DMNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMNotificationProcInfo, GetCurrentArchitecture())
  389. #define NewDMExtendedNotificationProc(userRoutine)                 (DMExtendedNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, GetCurrentArchitecture())
  390. #define NewDMComponentListIteratorProc(userRoutine)             (DMComponentListIteratorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, GetCurrentArchitecture())
  391. #define NewDMDisplayModeListIteratorProc(userRoutine)             (DMDisplayModeListIteratorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, GetCurrentArchitecture())
  392. #define CallDMNotificationProc(userRoutine, theEvent)             CALL_ONE_PARAMETER_UPP((userRoutine), uppDMNotificationProcInfo, (theEvent))
  393. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)  CALL_THREE_PARAMETER_UPP((userRoutine), uppDMExtendedNotificationProcInfo, (userData), (theMessage), (notifyData))
  394. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)  CALL_THREE_PARAMETER_UPP((userRoutine), uppDMComponentListIteratorProcInfo, (userData), (itemIndex), (componentInfo))
  395. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)  CALL_THREE_PARAMETER_UPP((userRoutine), uppDMDisplayModeListIteratorProcInfo, (userData), (itemIndex), (displaymodeInfo))
  396.  
  397. /* Trap interfaces */
  398.  
  399. #if !FOR_GLUE_LIB
  400. EXTERN_API( GDHandle )
  401. DMGetFirstScreenDevice            (Boolean                 activeOnly)                            TWOWORDINLINE(0x7000, 0xABEB);
  402.  
  403. EXTERN_API( GDHandle )
  404. DMGetNextScreenDevice            (GDHandle                 theDevice,
  405.                                  Boolean                 activeOnly)                            TWOWORDINLINE(0x7001, 0xABEB);
  406.  
  407. EXTERN_API( void )
  408. DMDrawDesktopRect                (Rect *                    globalRect)                            TWOWORDINLINE(0x7002, 0xABEB);
  409.  
  410. EXTERN_API( void )
  411. DMDrawDesktopRegion                (RgnHandle                 globalRgn)                            TWOWORDINLINE(0x7003, 0xABEB);
  412.  
  413.  
  414.  
  415. EXTERN_API( OSErr )
  416. DMBeginConfigureDisplays        (Handle *                displayState)                        THREEWORDINLINE(0x303C, 0x0206, 0xABEB);
  417.  
  418. EXTERN_API( OSErr )
  419. DMEndConfigureDisplays            (Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0207, 0xABEB);
  420.  
  421. EXTERN_API( OSErr )
  422. DMAddDisplay                    (GDHandle                 newDevice,
  423.                                  short                     driver,
  424.                                  unsigned long             mode,
  425.                                  unsigned long             reserved,
  426.                                  unsigned long             displayID,
  427.                                  Component                 displayComponent,
  428.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0D08, 0xABEB);
  429.  
  430. EXTERN_API( OSErr )
  431. DMMoveDisplay                    (GDHandle                 moveDevice,
  432.                                  short                     x,
  433.                                  short                     y,
  434.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0609, 0xABEB);
  435.  
  436. EXTERN_API( OSErr )
  437. DMDisableDisplay                (GDHandle                 disableDevice,
  438.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x040A, 0xABEB);
  439.  
  440. EXTERN_API( OSErr )
  441. DMEnableDisplay                    (GDHandle                 enableDevice,
  442.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x040B, 0xABEB);
  443.  
  444. EXTERN_API( OSErr )
  445. DMRemoveDisplay                    (GDHandle                 removeDevice,
  446.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x040C, 0xABEB);
  447.  
  448.  
  449.  
  450.  
  451. EXTERN_API( OSErr )
  452. DMSetMainDisplay                (GDHandle                 newMainDevice,
  453.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0410, 0xABEB);
  454.  
  455. EXTERN_API( OSErr )
  456. DMSetDisplayMode                (GDHandle                 theDevice,
  457.                                  unsigned long             mode,
  458.                                  unsigned long *        depthMode,
  459.                                  unsigned long             reserved,
  460.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0A11, 0xABEB);
  461.  
  462. EXTERN_API( OSErr )
  463. DMCheckDisplayMode                (GDHandle                 theDevice,
  464.                                  unsigned long             mode,
  465.                                  unsigned long             depthMode,
  466.                                  unsigned long *        switchFlags,
  467.                                  unsigned long             reserved,
  468.                                  Boolean *                modeOk)                                THREEWORDINLINE(0x303C, 0x0C12, 0xABEB);
  469.  
  470. EXTERN_API( OSErr )
  471. DMGetDeskRegion                    (RgnHandle *            desktopRegion)                        THREEWORDINLINE(0x303C, 0x0213, 0xABEB);
  472.  
  473. EXTERN_API( OSErr )
  474. DMRegisterNotifyProc            (DMNotificationUPP         notificationProc,
  475.                                  ProcessSerialNumberPtr  whichPSN)                            THREEWORDINLINE(0x303C, 0x0414, 0xABEB);
  476.  
  477. EXTERN_API( OSErr )
  478. DMRemoveNotifyProc                (DMNotificationUPP         notificationProc,
  479.                                  ProcessSerialNumberPtr  whichPSN)                            THREEWORDINLINE(0x303C, 0x0415, 0xABEB);
  480.  
  481.  
  482. EXTERN_API( OSErr )
  483. DMQDIsMirroringCapable            (Boolean *                qdIsMirroringCapable)                THREEWORDINLINE(0x303C, 0x0216, 0xABEB);
  484.  
  485. EXTERN_API( OSErr )
  486. DMCanMirrorNow                    (Boolean *                canMirrorNow)                        THREEWORDINLINE(0x303C, 0x0217, 0xABEB);
  487.  
  488. EXTERN_API( OSErr )
  489. DMIsMirroringOn                    (Boolean *                isMirroringOn)                        THREEWORDINLINE(0x303C, 0x0218, 0xABEB);
  490.  
  491. EXTERN_API( OSErr )
  492. DMMirrorDevices                    (GDHandle                 gD1,
  493.                                  GDHandle                 gD2,
  494.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0619, 0xABEB);
  495.  
  496. EXTERN_API( OSErr )
  497. DMUnmirrorDevice                (GDHandle                 gDevice,
  498.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x041A, 0xABEB);
  499.  
  500. EXTERN_API( OSErr )
  501. DMGetNextMirroredDevice            (GDHandle                 gDevice,
  502.                                  GDHandle *                mirroredDevice)                        THREEWORDINLINE(0x303C, 0x041B, 0xABEB);
  503.  
  504. EXTERN_API( OSErr )
  505. DMBlockMirroring                (void)                                                        TWOWORDINLINE(0x701C, 0xABEB);
  506.  
  507. EXTERN_API( OSErr )
  508. DMUnblockMirroring                (void)                                                        TWOWORDINLINE(0x701D, 0xABEB);
  509.  
  510. EXTERN_API( OSErr )
  511. DMGetDisplayMgrA5World            (Ptr *                    dmA5)                                THREEWORDINLINE(0x303C, 0x021E, 0xABEB);
  512.  
  513. EXTERN_API( OSErr )
  514. DMGetDisplayIDByGDevice            (GDHandle                 displayDevice,
  515.                                  DisplayIDType *        displayID,
  516.                                  Boolean                 failToMain)                            THREEWORDINLINE(0x303C, 0x051F, 0xABEB);
  517.  
  518. EXTERN_API( OSErr )
  519. DMGetGDeviceByDisplayID            (DisplayIDType             displayID,
  520.                                  GDHandle *                displayDevice,
  521.                                  Boolean                 failToMain)                            THREEWORDINLINE(0x303C, 0x0520, 0xABEB);
  522.  
  523. EXTERN_API( OSErr )
  524. DMSetDisplayComponent            (GDHandle                 theDevice,
  525.                                  Component                 displayComponent)                    THREEWORDINLINE(0x303C, 0x0421, 0xABEB);
  526.  
  527. EXTERN_API( OSErr )
  528. DMGetDisplayComponent            (GDHandle                 theDevice,
  529.                                  Component *            displayComponent)                    THREEWORDINLINE(0x303C, 0x0422, 0xABEB);
  530.  
  531. EXTERN_API( OSErr )
  532. DMNewDisplay                    (GDHandle *                newDevice,
  533.                                  short                     driverRefNum,
  534.                                  unsigned long             mode,
  535.                                  unsigned long             reserved,
  536.                                  DisplayIDType             displayID,
  537.                                  Component                 displayComponent,
  538.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0D23, 0xABEB);
  539.  
  540. EXTERN_API( OSErr )
  541. DMDisposeDisplay                (GDHandle                 disposeDevice,
  542.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0424, 0xABEB);
  543.  
  544. EXTERN_API( OSErr )
  545. DMResolveDisplayComponents        (void)                                                        TWOWORDINLINE(0x7025, 0xABEB);
  546.  
  547. #endif  /*  !FOR_GLUE_LIB */
  548.  
  549. #if !FOR_68kGLUE_LIB
  550. EXTERN_API( OSErr )
  551. DMRegisterExtendedNotifyProc    (DMExtendedNotificationUPP  notifyProc,
  552.                                  void *                    notifyUserData,
  553.                                  unsigned short         nofifyOnFlags,
  554.                                  ProcessSerialNumberPtr  whichPSN)                            THREEWORDINLINE(0x303C, 0x07EF, 0xABEB);
  555.  
  556. EXTERN_API( OSErr )
  557. DMRemoveExtendedNotifyProc        (DMExtendedNotificationUPP  notifyProc,
  558.                                  void *                    notifyUserData,
  559.                                  ProcessSerialNumberPtr  whichPSN,
  560.                                  unsigned short         removeFlags)                        THREEWORDINLINE(0x303C, 0x0726, 0xABEB);
  561.  
  562. #endif  /*  !FOR_68kGLUE_LIB */
  563.  
  564. EXTERN_API( OSErr )
  565. DMNewAVPanelList                (DisplayIDType             displayID,
  566.                                  ResType                 panelType,
  567.                                  DMFidelityType         minimumFidelity,
  568.                                  unsigned long             panelListFlags,
  569.                                  unsigned long             reserved,
  570.                                  DMListIndexType *        thePanelCount,
  571.                                  DMListType *            thePanelList)                        THREEWORDINLINE(0x303C, 0x0C27, 0xABEB);
  572.  
  573. EXTERN_API( OSErr )
  574. DMNewAVEngineList                (DisplayIDType             displayID,
  575.                                  ResType                 engineType,
  576.                                  DMFidelityType         minimumFidelity,
  577.                                  unsigned long             engineListFlags,
  578.                                  unsigned long             reserved,
  579.                                  DMListIndexType *        engineCount,
  580.                                  DMListType *            engineList)                            THREEWORDINLINE(0x303C, 0x0C28, 0xABEB);
  581.  
  582. EXTERN_API( OSErr )
  583. DMNewAVDeviceList                (ResType                 deviceType,
  584.                                  unsigned long             deviceListFlags,
  585.                                  unsigned long             reserved,
  586.                                  DMListIndexType *        deviceCount,
  587.                                  DMListType *            deviceList)                            THREEWORDINLINE(0x303C, 0x0A29, 0xABEB);
  588.  
  589. EXTERN_API( OSErr )
  590. DMNewAVPortListByPortType        (ResType                 subType,
  591.                                  unsigned long             portListFlags,
  592.                                  unsigned long             reserved,
  593.                                  DMListIndexType *        devicePortCount,
  594.                                  DMListType *            theDevicePortList)                    THREEWORDINLINE(0x303C, 0x0A2A, 0xABEB);
  595.  
  596. EXTERN_API( OSErr )
  597. DMGetIndexedComponentFromList    (DMListType             panelList,
  598.                                  DMListIndexType         itemIndex,
  599.                                  unsigned long             reserved,
  600.                                  DMComponentListIteratorUPP  listIterator,
  601.                                  void *                    userData)                            THREEWORDINLINE(0x303C, 0x0A2B, 0xABEB);
  602.  
  603. #if !FOR_68kGLUE_LIB
  604. EXTERN_API( OSErr )
  605. DMDisposeList                    (DMListType             panelList)                            THREEWORDINLINE(0x303C, 0x022C, 0xABEB);
  606.  
  607. #endif  /*  !FOR_68kGLUE_LIB */
  608.  
  609. EXTERN_API( OSErr )
  610. DMGetNameByAVID                    (AVIDType                 theID,
  611.                                  unsigned long             nameFlags,
  612.                                  Str255                 name)                                THREEWORDINLINE(0x303C, 0x062D, 0xABEB);
  613.  
  614. EXTERN_API( OSErr )
  615. DMNewAVIDByPortComponent        (Component                 thePortComponent,
  616.                                  ResType                 portKind,
  617.                                  unsigned long             reserved,
  618.                                  AVIDType *                newID)                                THREEWORDINLINE(0x303C, 0x082E, 0xABEB);
  619.  
  620. EXTERN_API( OSErr )
  621. DMGetPortComponentByAVID        (DisplayIDType             thePortID,
  622.                                  Component *            thePortComponent,
  623.                                  ComponentDescription *    theDesciption,
  624.                                  ResType *                thePortKind)                        THREEWORDINLINE(0x303C, 0x082F, 0xABEB);
  625.  
  626. #if !FOR_68kGLUE_LIB
  627. EXTERN_API( OSErr )
  628. DMSendDependentNotification        (ResType                 notifyType,
  629.                                  ResType                 notifyClass,
  630.                                  AVIDType                 displayID,
  631.                                  ComponentInstance         notifyComponent)                    THREEWORDINLINE(0x303C, 0x0830, 0xABEB);
  632.  
  633. #endif  /*  !FOR_68kGLUE_LIB */
  634.  
  635. EXTERN_API( OSErr )
  636. DMDisposeAVComponent            (Component                 theAVComponent)                        THREEWORDINLINE(0x303C, 0x0231, 0xABEB);
  637.  
  638. EXTERN_API( OSErr )
  639. DMSaveScreenPrefs                (unsigned long             reserved1,
  640.                                  unsigned long             saveFlags,
  641.                                  unsigned long             reserved2)                            THREEWORDINLINE(0x303C, 0x0632, 0xABEB);
  642.  
  643. EXTERN_API( OSErr )
  644. DMNewAVIDByDeviceComponent        (Component                 theDeviceComponent,
  645.                                  ResType                 portKind,
  646.                                  unsigned long             reserved,
  647.                                  DisplayIDType *        newID)                                THREEWORDINLINE(0x303C, 0x0833, 0xABEB);
  648.  
  649. EXTERN_API( OSErr )
  650. DMNewAVPortListByDeviceAVID        (AVIDType                 theID,
  651.                                  DMFidelityType         minimumFidelity,
  652.                                  unsigned long             portListFlags,
  653.                                  unsigned long             reserved,
  654.                                  DMListIndexType *        devicePortCount,
  655.                                  DMListType *            theDevicePortList)                    THREEWORDINLINE(0x303C, 0x0C34, 0xABEB);
  656.  
  657. EXTERN_API( OSErr )
  658. DMGetDeviceComponentByAVID        (AVIDType                 theDeviceID,
  659.                                  Component *            theDeviceComponent,
  660.                                  ComponentDescription *    theDesciption,
  661.                                  ResType *                theDeviceKind)                        THREEWORDINLINE(0x303C, 0x0835, 0xABEB);
  662.  
  663. EXTERN_API( OSErr )
  664. DMNewDisplayModeList            (DisplayIDType             displayID,
  665.                                  unsigned long             modeListFlags,
  666.                                  unsigned long             reserved,
  667.                                  DMListIndexType *        thePanelCount,
  668.                                  DMListType *            thePanelList)                        THREEWORDINLINE(0x303C, 0x0A36, 0xABEB);
  669.  
  670. EXTERN_API( OSErr )
  671. DMGetIndexedDisplayModeFromList    (DMListType             panelList,
  672.                                  DMListIndexType         itemIndex,
  673.                                  unsigned long             reserved,
  674.                                  DMDisplayModeListIteratorUPP  listIterator,
  675.                                  void *                    userData)                            THREEWORDINLINE(0x303C, 0x0A37, 0xABEB);
  676.  
  677. EXTERN_API( OSErr )
  678. DMGetGraphicInfoByAVID            (AVIDType                 theID,
  679.                                  PicHandle *            theAVPcit,
  680.                                  Handle *                theAVIconSuite,
  681.                                  AVLocationRec *        theAVLocation)                        THREEWORDINLINE(0x303C, 0x0838, 0xABEB);
  682.  
  683. EXTERN_API( OSErr )
  684. DMGetAVPowerState                (AVIDType                 theID,
  685.                                  AVPowerStatePtr         getPowerState,
  686.                                  unsigned long             reserved1)                            THREEWORDINLINE(0x303C, 0x0839, 0xABEB);
  687.  
  688. EXTERN_API( OSErr )
  689. DMSetAVPowerState                (AVIDType                 theID,
  690.                                  AVPowerStatePtr         setPowerState,
  691.                                  unsigned long             powerFlags,
  692.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x083A, 0xABEB);
  693.  
  694. EXTERN_API( OSErr )
  695. DMGetDeviceAVIDByPortAVID        (AVIDType                 portAVID,
  696.                                  AVIDType *                deviceAVID)                            THREEWORDINLINE(0x303C, 0x043B, 0xABEB);
  697.  
  698. EXTERN_API( OSErr )
  699. DMGetEnableByAVID                (AVIDType                 theAVID,
  700.                                  Boolean *                isAVIDEnabledNow,
  701.                                  Boolean *                canChangeEnableNow)                    THREEWORDINLINE(0x303C, 0x063C, 0xABEB);
  702.  
  703. EXTERN_API( OSErr )
  704. DMSetEnableByAVID                (AVIDType                 theAVID,
  705.                                  Boolean                 doEnable,
  706.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x053D, 0xABEB);
  707.  
  708. EXTERN_API( OSErr )
  709. DMGetDisplayMode                (GDHandle                 theDevice,
  710.                                  VDSwitchInfoPtr         switchInfo)                            THREEWORDINLINE(0x303C, 0x043E, 0xABEB);
  711.  
  712. EXTERN_API( OSErr )
  713. DMConfirmConfiguration            (ModalFilterUPP         filterProc,
  714.                                  UInt32                 confirmFlags,
  715.                                  UInt32                 reserved,
  716.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x083F, 0xABEB);
  717.  
  718.  
  719.  
  720. #if PRAGMA_STRUCT_ALIGN
  721.     #pragma options align=reset
  722. #elif PRAGMA_STRUCT_PACKPUSH
  723.     #pragma pack(pop)
  724. #elif PRAGMA_STRUCT_PACK
  725.     #pragma pack()
  726. #endif
  727.  
  728. #ifdef PRAGMA_IMPORT_OFF
  729. #pragma import off
  730. #elif PRAGMA_IMPORT
  731. #pragma import reset
  732. #endif
  733.  
  734. #ifdef __cplusplus
  735. }
  736. #endif
  737.  
  738. #endif /* __DISPLAYS__ */
  739.  
  740.